﻿/*
 * GLEngineDefine.h
 *
 *  Created on: Jun 6, 2014
 *      Author: yuliang
 */

#ifndef GLENGINEDEFINE_H_
#define GLENGINEDEFINE_H_

/*
 * 最基本实例类型
 */
enum GLEntityBaseType {
	GLEBTNone = 0,
	GLEBTAnimal,								// 人物+怪物+宝宝
	GLEBTRobot,									// ..
	GLEBTGoods,									// 物品
	GLEBTGroup,									// 队伍
	GLEBTFaction,								// 帮会
	GLEBTScene,									// 场景
	GLEBTTask,									// 任务
	GLEBTMap,									// 地图
	GLEBTContainer,								// 容器
	GLEBTProperty,								// 属性
	GLEBTReward,								// 奖励
	GLEBTSkillInfo,								// 技能信息
	GLEBTSkillManager,							// 技能管理
	GLEBTSkillCalc,								// 技能计算
	GLEBTSkillCalcManager,						// 技能计算管理
	GLEBTEffect,								// 效果
	GLEBTEffectManager,							// 效果管理
	GLEBTEffectCalc,							// 技能计算
	GLEBTEffectCalcManager,						// 技能计算管理

	GLEBTMaxType,								// 最大类型
};

///*
// * 属性类型
// */
//enum GLPropertyType {
//	GLPropPersonLev = 1,
//	GLPropPersonMoney,
//	GLPropPersonExp,
//	GLPropPersonHp,
//	GLPropPersonMp,
//	GLPropPerson,
//};

///*
// * 人物属性
// */
//enum EGPersonType {
//	EGPTPerson,
//	EGPTRobot,
//	EGPTMonster,
//};

/*
 * 队伍操作
 */
enum GLGroupProcFlag {
	GLPFCreate,
	GLPFApply,
	GLPFInviter,
	GLPFBeInvited,
	GLPFPlayerAgree,
	GLPFLeaderAgree,
	GLPFBeAgreed,
	GLPFLeave,
	GLPFBooter,
	GLPFBeBooted,
	GLPFBecomeLeader,
	GLPFBecomeMember,
};

/*
 * 字节位数对应的数字
 */
#define BYTE_1									0x01u
#define BYTE_2									0x02u
#define BYTE_3									0x04u
#define BYTE_4									0x08u
#define BYTE_5									0x10u
#define BYTE_6									0x20u
#define BYTE_7									0x40u
#define BYTE_8									0x80u
#define BYTE_9									0x0100u
#define BYTE_10									0x0200u
#define BYTE_11									0x0400u
#define BYTE_12									0x0800u
#define BYTE_13									0x1000u
#define BYTE_14									0x2000u
#define BYTE_15									0x4000u
#define BYTE_16									0x8000u
#define BYTE_17									0x010000u
#define BYTE_18									0x020000u
#define BYTE_19									0x040000u
#define BYTE_20									0x080000u
#define BYTE_21									0x100000u
#define BYTE_22									0x200000u
#define BYTE_23									0x400000u
#define BYTE_24									0x800000u
#define BYTE_25									0x01000000u
#define BYTE_26									0x02000000u
#define BYTE_27									0x04000000u
#define BYTE_28									0x08000000u
#define BYTE_29									0x10000000u
#define BYTE_30									0x20000000u
#define BYTE_31									0x40000000u
#define BYTE_32									0x80000000u

/*
 * 人物状态
 */
#define ENTITY_STATUS_PERSON_IN_GROUP			BYTE_1			// 在队伍里
#define ENTITY_STATUS_PERSON_ON_LINE			BYTE_2			// 在线
#define ENTITY_STATUS_PERSON_LOADING_DATA		BYTE_3			// 正在加载数据
#define ENTITY_STATUS_PERSON_IN_SCENE			BYTE_4			// 在场景
#define ENTITY_STATUS_PERSON_FACTION_CREATE		BYTE_5			// 创建帮会
#define ENTITY_STATUS_PERSON_IN_TRADE			BYTE_6			// 交易中

/*
 * 队伍状态
 */
#define ENTITY_STATUS_GROUP_VALID				BYTE_1			// 队伍有效

/*
 * 任务状态
 */
#define ENTITY_STATUS_TASK_GET					BYTE_1			// 已经领取
#define ENTITY_STATUS_TASK_COMPLETE				BYTE_32			// 已经完成

/*
 * 物品状态
 */
//#define ENTITY_STATUS_GOODS_TRADE				BYTE_1			// 可以交易
//#define ENTITY_STATUS_GOODS_OVERLAP				BYTE_2			// 可以重叠

/*
 * 技能状态
 */
#define ENTITY_STATUS_SKILL_END					BYTE_1			// 技能效果结束

#define ENTITY_STATUS_SKILL_PROPERTY_TRUE		BYTE_10			// 作用属性
#define ENTITY_STATUS_SKILL_PROPERTY_SELF		BYTE_11			// 作用自己的属性
#define ENTITY_STATUS_SKILL_PROPERTY_OTHER		BYTE_12			// 作用其他的属性


/*
 * 技能效果状态
 */
#define ENTITY_STATUS_SKILL_EFFECT_END			BYTE_1			// 技能效果结束

/*
 * 场景状态
 */
#define ENTITY_STATUS_SCENE_BATTLE_ING			BYTE_1			// 正在战斗
#define ENTITY_STATUS_SCENE_BATTLE_END			BYTE_2			// 战斗结束
#define ENTITY_STATUS_SCENE_BATTLE_FIRST_OVER	BYTE_3			// 第一队伍全部死亡
#define ENTITY_STATUS_SCENE_BATTLE_SCEOND_OVER	BYTE_4			// 第二队伍全部死亡
//#define ENTITY_STATUS_SCENE_USE_SKILL_ING		BYTE_5			// 正在使用技能

/*
 * 交易状态
 */
#define ENTITY_STATUS_TRADE_LAUNCHER_TRUE		BYTE_1			// 交易发起者已经确认
#define ENTITY_STATUS_TRADE_BELAUNCHER_TRUE		BYTE_2			// 交易被发起者已经确认
#define ENTITY_STATUS_TRADE_INVALID				BYTE_3			// 无效交易

/*
 * 容器状态
 */
#define ENTITY_STATUS_CONTAINER_CHANGE			BYTE_10			// 容器变化

/*
 * 玩家Id最小值
 */
//#define USER_MIN_ID								0x05F5E100		// 一亿

/*
 * 分割符号
 */
#define SUB_SEPARATOR_0							","
#define SUB_SEPARATOR_1							":"
#define SUB_SEPARATOR_2							"|"

/*
 * 实体对象的子对象最大值
 */
#define CHILDS_ENTITY_MAX_NUM					200


/*
 * 怪物刷新时间
 */
#define MONSTER_IN_MAP_FLUSH_TIME				6

/*
 * 物品重叠最大个数
 */
#define GOODS_NOT_OVERLAP_MAX_NUM				1
#define GOODS_OVERLAP_MAX_NUM					100

/*
 * 倍数最大值
 */
#define MULTIPLE_MAX_VALUE						2

#define BATTLE_POSITION_INVALID					250

#endif /* GLENGINEDEFINE_H_ */
